import Vue from "vue";
import Vuex from "vuex";

import axios from "axios";

// 导入vuex持久化的包createPersistedState
import createPersistedState from "vuex-persistedstate";

Vue.use(Vuex);

export default new Vuex.Store({
  // 配置插件
  plugins: [createPersistedState()],
  state: {
    // // 定义存储token的属性
    // token:  localStorage.getItem('token')  || ''
    token: "",
    // 存储用户信息
    userInfo:{}
  },
  // 唯一更新数据的地方
  mutations: {
    updateToken(state, token) {
      state.token = token;
    },
    // 定义更新用户信息的函数
    updateUserInfo(state,info){
      // state.xxx = info
      state.userInfo = info
    }
  },
  // 异步的操作
  actions: {
    // 定义获取用户信息的函数
    // context是Store的实例对象
    async initUserInfo(context) {
      //  发送请求获取数据
      const { data: res } = await axios.get("/my/userinfo");
      console.log(res);
      // 将数据保存到vuex中，触发mutations中的函数
      // context.commit('mutations中的函数',res.data)
      context.commit('updateUserInfo',res.data)
    },
  },
  modules: {},
});
